package cn.changeforyou.web.dao.mybatis.ext.metaInfo;

/**
 * @author zhyu
 * @version 1.0
 * @date 2022/2/15 13:31
 */

import lombok.Data;
import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlCommandType;

import java.lang.reflect.Method;

/**
 * mybatis MappedStatement的基础信息数据 这些数据作为参数才能解析或获取核心数据
 */
@Data
public class MappedStatementBaseInfo {
    /**
     * mybatis映射器类名称
     */
    private String daoClassName;
    /**
     * 方法名
     */
    private String methodName;
    /**
     * mybatis映射器类
     */
    private Class daoClass;

    /**
     * 实体类类对象
     */
    private Class entityClass;

    /**
     * 查询条件对象类类对象
     */
    private Class conditionClass;

    /**
     * 视图类类对象
     */
    private Class voClass;

    /**
     * 数据传输对象类对象
     */
    private Class dtoClass;

    /**
     * mybatis的resultType
     */
    private Class resultType;

    /**
     * 映射器的返回值
     */
    private Class returnType;

    /**
     * mybatis映射器方法
     */
    private Method method;
    /**
     * mappedStatementId
     */
    private String mappedStatementId;
    /**
     * sql类型
     */
    private SqlCommandType sqlCommandType;

    /**
     * 映射器返回值类型
     */
    private MappedStatementResultType mappedStatementResultType;

    /**
     * 映射器参数类型
     */
    private MappedStatementParameterType mappedStatementParameterType;

    /**
     * 映射器
     */
    private MappedStatement mappedStatement;

}